﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GeekShop.Commands;
using System.Drawing;

namespace GeekShop.Tools.Fill
{
    public class Gradient : MouseBehaviour, ITool
    {
        #region Fields
        private ICommand command = null;
        #endregion

        #region Properties
        public System.Windows.Forms.Cursor Cursor
        {
            get { return Cursors.IBeam; }
        }
        public System.Drawing.Bitmap Icon
        {
            get { return GeekShop.Properties.Resources.color_gradient; }
        }
        public string Name
        {
            get { return "Gradient Fill"; }
        }
        public ICommand Command { get { return this.command; } }
        #endregion

        #region Methods

        /// <summary>
        /// Creates an instance of the GradientColorDialog if there is none
        /// and creates a Command which fills the target area with the specified color gradient.
        /// </summary>
        /// <param name="Target">
        /// In this Case the target will be a Picture.
        /// More specifically, an area of the selected layer defined by the mask.
        /// </param>
        public void RunDialog(PictureManager pictureManager)
        {
            if (GradientColorDialog.Form == null)
            {
                GradientColorDialog.Form = new GradientColorDialog(GeekShop.Gradient.Empty);
                GradientColorDialog.Form.RunDialog();
            }
        }
        #endregion

        #region Events
        public event EventHandler ToolReady;
        #endregion

        #region Event Methods
        public override void MouseDown(object sender, MouseEventArgs e)
        {
            throw new NotImplementedException();
        }
        public override void MouseMove(object sender, MouseEventArgs e)
        {
            throw new NotImplementedException();
        }
        public override void MouseUp(object sender, MouseEventArgs e)
        {
            throw new NotImplementedException();
        }
        #endregion
    }
}
